home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 41.zip / BS1 part 41 / Devpac 2.12 disk 2.adf / include.cbm / exec / ables.i next >
Text File  |  1987-03-31  |  2KB  |  103 lines

  1.     IFND EXEC_ABLES_I
  2. EXEC_ABLES_I  SET 1
  3. **********************************************************************
  4. *
  5. *   Commodore Amiga -- ROM Operating System Executive Include File
  6. *
  7. **********************************************************************
  8. *
  9. *   Source Control:
  10. *
  11. *       $Header: ables.i,v 33.1 86/03/30 13:03:48 neil Exp $
  12. *
  13. *       $Locker: neil $
  14. *
  15. **********************************************************************
  16.  
  17.     IFND EXEC_TYPES_I
  18.     INCLUDE "exec/types.i"
  19.     ENDC !EXEC_TYPES_I
  20.  
  21.     IFND EXEC_EXECBASE_I
  22.     INCLUDE "exec/execbase.i"
  23.     ENDC !EXEC_EXECBASE_I
  24.  
  25.  
  26. *----------------------------------------------------------------
  27. *
  28. *   Interrupt Exclusion Macros
  29. *
  30. *----------------------------------------------------------------
  31.  
  32. INT_ABLES   MACRO                       * externals for dis/enable
  33.             XREF    _intena
  34.             ENDM
  35.  
  36.  
  37. DISABLE     MACRO   * [scratchReg]
  38.             IFC     '\1',''
  39.             MOVE.W  #$04000,_intena     *(NOT IF_SETCLR)+IF_INTEN
  40.             ADDQ.B  #1,IDNestCnt(A6)
  41.             ENDC
  42.             IFNC    '\1',''
  43.             MOVE.L  4,\1
  44.             MOVE.W  #$04000,_intena     *(NOT IF_SETCLR)+IF_INTEN
  45.             ADDQ.B  #1,IDNestCnt(\1)
  46.             ENDC
  47.             ENDM
  48.  
  49.  
  50. ENABLE      MACRO   * [scratchReg]
  51.             IFC     '\1',''
  52.             SUBQ.B  #1,IDNestCnt(A6)
  53.             BGE.S   ENABLE\@
  54.             MOVE.W  #$0C000,_intena     *IF_SETCLR+IF_INTEN
  55. ENABLE\@:
  56.             ENDC
  57.             IFNC    '\1',''
  58.             MOVE.L  4,\1
  59.             SUBQ.B  #1,IDNestCnt(\1)
  60.             BGE.S   ENABLE\@
  61.             MOVE.W  #$0C000,_intena
  62. ENABLE\@:
  63.             ENDC
  64.             ENDM
  65.  
  66.  
  67. *----------------------------------------------------------------
  68. *
  69. *   Tasking Exclusion Macros
  70. *
  71. *----------------------------------------------------------------
  72.  
  73. TASK_ABLES  MACRO
  74. *           INCLUDE 'execbase.i' for TDNestCnt offset
  75.             XREF    _LVOPermit
  76.             ENDM
  77.  
  78.  
  79. FORBID      MACRO
  80.             IFC     '\1',''
  81.             ADDQ.B  #1,TDNestCnt(A6)
  82.             ENDC
  83.             IFNC    '\1',''
  84.             MOVE.L  4,\1
  85.             ADDQ.B  #1,TDNestCnt(\1)
  86.             ENDC
  87.             ENDM
  88.  
  89.  
  90. PERMIT      MACRO
  91.             IFC     '\1',''
  92.             JSR     _LVOPermit(A6)
  93.             ENDC
  94.             IFNC    '\1',''
  95.             MOVE.L  A6,-(SP)
  96.             MOVE.L  4,A6
  97.             JSR     _LVOPermit(A6)
  98.             MOVE.L  (SP)+,A6
  99.             ENDC
  100.             ENDM
  101.  
  102.     ENDC !EXEC_ABLES_I
  103.